home *** CD-ROM | disk | FTP | other *** search
- // Gravity - Version 1.3
-
- // é▒é╠âXâNâèâvâgé═üAéPö╘û┌é╠â|âbâvâAâbâvâüâjâàü[é╠âîâCâäü[é╔Ådù═é≡ôKùpé╡é▄é╖üB
- // âÅü[âNâGâèâAé╠èJÄnÄ₧é╔É▌ÆΦé│éΩé─éóéΘæ¼ôxé¬üA
-
- // Åëè·æ¼ôxé╞é╡é─Ägùpé│éΩé▄é╖üB
-
- // âîâCâäü[ âvâìâpâeâB â`âââôâlâï
- // ------ ---------- --------
- // 1: Ådù═é╠ôKùpɵâîâCâäü[ Ägùpé╡é╚éó Ägùpé╡é╚éó
- // 2: Ägùpé╡é╚éó Ägùpé╡é╚éó Ägùpé╡é╚éó
-
- if (time() == start_time) {
- vel = tmap (time() + step_time, value(pop_layer(1), position)) -
- value(pop_layer(1), position);
- damping = 0.95; // î╕Éèù═üiéOüüûÇÄCù═û│î└æσüAéPüüûÇÄCù═é╚é╡üj
- grav = 0.9; // Ådù═é╠æσé½é│
- grav_dir = {0,1,0}; // Ådù═é╠ò√îⁿ
- accel = grav * grav_dir; // Ådù═é╠âxâNâgâï
-
- new_pos = value(pop_layer(1), position);
- } else {
-
- vel = vel*damping + accel; // ò¬ÄUë┴æ¼ôxé≡æ¼ôxé╔Æ╟ë┴
- new_pos = new_pos + vel; // ò¬ÄUæ¼ôxé≡ê╩Æué╔Æ╟ë┴
-
- // âRâôâ|âWâVâçâôé╠ï½èEé⌐éτÆ╡é╦ò╘éΘê╩Æué≡èmöF
- if (new_pos[X] < 0) {
- new_pos[X] = 0;
- vel = {-vel[X], vel[Y]};
- }
- if (new_pos[Y] < 0) {
- new_pos[Y] = 0;
- vel = {vel[X], -vel[Y]};
- }
- if (new_pos[X] > comp_size[X]) {
- new_pos[X] = comp_size[X];
- vel = {-vel[X], vel[Y]};
- }
- if (new_pos[Y] > comp_size[Y]) {
- new_pos[Y] = comp_size[Y];
- vel = {vel[X], -vel[Y]};
- }
- }
- value(pop_layer(1), position) = new_pos;
-